| |
Please visit www.soundspectrum.com to learn more about the standard versoin of WhiteCap and all of the options available for programming your own configs!
A "config" is a file that contains plain-text data intended to
be read-in by WhiteCap. Configs contain a non-ordered list of
named strings, similar to a Windows INI file and can be viewed
or edited by using any text editor. Depending on the role a
config file is intended to play, WhiteCap looks for specifically
named items and uses them in accordance with the role of that
config. For example, when a WaveShape config defines a string
named "Pen", it's understood that the string paired
to it defines how darkly lines are drawn. If you want to learn
the config file syntax, it will help to have some familiarity
with programming and/or script writing. Many users submit their
configs so that they can be redistributed—over half of
the configs that come with WhiteCap and WhiteCap were made by
users just like you.
- Syntax
- The config file syntax is straightforward and is nothing
more than a flat, non-ordered, list of key-value pairs (ie,
a dictionary). It's an ASCII plain-text file (ie, not any
other kind of file, such as an RTF file), with 1 to 4 character
case-sensitive "key" identifiers followed by an
equal sign, followed by the key's value. If the value isn't
a number (a leading '-' and/or '.' is ok), then it should
be in quotes. All whitespace outside of quotes is ignored,
and both kinds of C-style comments are processed. An example
of valid syntax:
X0=".5 + sin( .3 * t )" //
This is a comment
Y0="123"
Pen=.8
Ans=-42
ALFA="1 / exp( c1 ^ 2 )" /*
This is another comment */
Vers=260
- Submitting Your Configs
- If you'd like a config you made yourself to permanently
become part of WhiteCap, please contact
us. From there, it'll be evaluated and checked for possible
problems or faults. If you choose to redistribute your configs
on your own and do something hazardous in them, you may
cause other versions of WhiteCap to crash or have other problems.
Further, sending in your configs centralizes the entire
process, guaranteeing your work to appear as soon as possible.
- Documented Configs
-
If you download the standard version of WhiteCap from www.soundspectrum.com, you will be able to access several documented configs that come with WhiteCap.
- Be Patient
- Don't get discouraged if the math seems like a lot. It's
simply a matter of experience and it'll come much easier
with just a little time—like riding a bike. As you
explore existing configs, you may want to try using a graphing
calculator to help see how a certain equations behave. A
common way to learn config programming is to alter existing
configs and observe the effects of your changes.
- Testing Your Configs
- When you're ready to test your config, you have to tell
WhiteCap to load a fresh copy it from the disk. Otherwise,
if you switch to a config you've been editing, WhiteCap
won't load your changes (because it's using a cached copy).
The 'U' key will reload the currently displayed configs.
In other words, when you save changes to a config, press
'U' to make WhiteCap load a fresh copy from disk.
Common
(All angles are in radians)
| abs() |
absolute value |
| exp() |
e to the x |
| log() |
natural logarithm |
| sqr() |
square |
| sqrt() |
square root |
| sin() |
sine |
| cos() |
cosine |
| tan() |
tangent |
| asin() |
arcsine (-PI/2 to PI/2) |
| acos() |
arccosine (0 to PI) |
| atan() |
arctangent (-PI/2 to PI/2) |
| atan2() |
arctangent (0 to PI) |
Logical/Discrete
| pos(x) |
x if x > 0 and 0 otherwise |
| sgn(x) |
1 if x > 0 and -1 otherwise |
| clip(x) |
0 when x < 0, 1 when x > 1, and x
when 0 <= x <= 1 |
| sqwv(x) |
1 if abs(x) <= 1.0 and 0 otherwise |
Miscellaneous
| rnd(x) |
a random real number from 0 to x |
| trnc(x) |
everything to the right of the decimal
point in x is dropped |
| flor(x) |
the largest integer that is also less than
x (ex, flor(3.2) == 3, flor(-2.7) == -3 ) |
| wrap(x) |
x - flor( x ) (ex: wrap( .3 ) == .3, wrap(
4.12 ) == .12, wrap( - 2.7 ) == .3 ) |
| flip(x) |
sawtooth that passes thru ...(-3, -1),
(-1, 1), (-1, -1), (1,1), (1, -1), ... |
| trwv(x) |
triangle-shaped wave that passes through
(0,0), (1,1), (2,0) and repeats in both directions along
the x axis |
| seed(x) |
seeds the random number generator based
on the bits of x, returns x |
Operators
| + - |
Add/Subtract |
| * / |
Multiply/Divide |
| % |
Modulo or "the integer remainder when
A is divided by B" (ex, 8 % 4 == 0, 11 % 3 == 2) |
| ^ |
raised to the power |
Audio Access
| fft() |
Accesses the frequency transform/spectrum
of the current audio |
| BASS |
A single scalar value that approximates
the overall beat |
Globals
| PI |
3.141592653 |
| NUM_S_STEPS |
The number of times the X, Y, and C expressions
are evaluated per sample (ie, per frame) |
| NUM_FFT_BINS |
The number of bins/resolution composing
fft() |
|
|